Computing devices such as personal computers, game consoles, smart phones, and the like often utilize a time-consuming process in order to load and cache pages used by applications into memory. The pages are typically stored on a rotating non-volatile media such as a magnetic hard disk (e.g., a hard drive). However, the device's processor executes instructions only from addressable memory such as DRAM or some other type of volatile electronic memory. The operating systems used in the computing devices cache the pages used by applications in memory so that the applications do not need to load pages from the rotating media as frequently.
The transfer of the pages from the hard drive is slow, particularly when the application is loading a large file. This is also prevalent in restoring the computer system from hibernate mode. A significant factor in the transfer time is due to the disk drive spin up speed. A relatively small disk spinning at a relatively slow RPM requires 5 to 6 seconds to spin up and be usable. Larger disks such as multi-platter devices and those spinning at faster RPMs require 10 to 12 seconds or more to spin up.
This problem gets worse as applications grow in size to incorporate security fixes and become more reliable. These applications often require more memory to operate without having to continually transfer data to and from the rotating storage media. However, upgrading the memory of machines is often too costly to undertake for corporations and end users or is beyond the skill level of individual users. Although the cost of memory itself is low, the labor and downtime involved in physically opening each machine and adding RAM may cost several hundred dollars.
Another problem where upgrading the memory of machines is often too costly to undertake is when a system is required to occasionally execute larger and more complex applications than normal. For example, an accounting staff of a company might need to run consolidation applications a few times a month. The larger and more complex applications require more memory to operate efficiently. Although the cost of memory itself is low, the labor and downtime involved in physically opening each machine and adding RAM may cost several hundred dollars. This cost may not justify the additional memory for the few times the application is run.